<?php

class ParentescoHelper 
{

	const PARENTESCO_HERMANO=0;
	const LABEL_HERMANO="Hermana/o";
	const PARENTESCO_PADRE=1;
	const LABEL_PADRE="Padre";
	const PARENTESCO_MADRE=2;
	const LABEL_MADRE="Madre";
	const PARENTESCO_ABUELO_PATERNO=3;
	const LABEL_ABUELO_PATERNO="Abuelo paterno";
	const PARENTESCO_ABUELA_PATERNA=4;
	const LABEL_ABUELA_PATERNA="Abuela paterna";
	const PARENTESCO_ABUELO_MATERNO=5;
	const LABEL_ABUELO_MATERNO="Abuelo materno";
	const PARENTESCO_ABUELA_MATERNA=6;
	const LABEL_ABUELA_MATERNA="Abuela materna";	
	const PARENTESCO_HERMANO_ABUELO_PATERNO=7;
	const LABEL_HERMANO_ABUELO_PATERNO="Hermana/o abuelo paterno";
	const PARENTESCO_HERMANO_ABUELA_PATERNA=8;
	const LABEL_HERMANO_ABUELA_PATERNA="Hermana/o abuela paterna";
	const PARENTESCO_HERMANO_ABUELO_MATERNO=9;
	const LABEL_HERMANO_ABUELO_MATERNO="Hermana/o abuelo materno";
	const PARENTESCO_HERMANO_ABUELA_MATERNA=10;
	const LABEL_HERMANO_ABUELA_MATERNA="Hermana/o abuela materna";	
	const PARENTESCO_PADRE_ABUELA_MATERNA=11;
	const LABEL_PADRE_ABUELA_MATERNA="Padre abuela materna";
	const PARENTESCO_MADRE_ABUELA_MATERNA=12;
	const LABEL_MADRE_ABUELA_MATERNA="Madre abuela materna";
	const PARENTESCO_PADRE_ABUELO_MATERNO=13;
	const LABEL_PADRE_ABUELO_MATERNO="Padre abuelo materno";
	const PARENTESCO_MADRE_ABUELO_MATERNO=14;
	const LABEL_MADRE_ABUELO_MATERNO="Madre abuelo materno";
	const PARENTESCO_PADRE_ABUELA_PATERNA=15;
	const LABEL_PADRE_ABUELA_PATERNA="Padre abuela paterna";
	const PARENTESCO_MADRE_ABUELA_PATERNA=16;
	const LABEL_MADRE_ABUELA_PATERNA="Madre abuela paterna";
	const PARENTESCO_PADRE_ABUELO_PATERNO=17;
	const LABEL_PADRE_ABUELO_PATERNO="Padre abuelo paterno";
	const PARENTESCO_MADRE_ABUELO_PATERNO=18;
	const LABEL_MADRE_ABUELO_PATERNO="Madre abuelo paterno";	
	const PARENTESCO_HERMANO_PADRE=19;
	const LABEL_HERMANO_PADRE="Hermana/o padre";
	const PARENTESCO_HERMANO_MADRE=20;
	const LABEL_HERMANO_MADRE="Hermana/o madre";
	const MULTIPLE=1;
	const NO_MULTIPLE=0;
	
	private $labellist = array(ParentescoHelper::PARENTESCO_HERMANO=>ParentescoHelper::LABEL_HERMANO,
									 ParentescoHelper::PARENTESCO_PADRE=>ParentescoHelper::LABEL_PADRE,
									 ParentescoHelper::PARENTESCO_MADRE=>ParentescoHelper::LABEL_MADRE,
									 ParentescoHelper::PARENTESCO_ABUELO_PATERNO=>ParentescoHelper::LABEL_ABUELO_PATERNO,
									 ParentescoHelper::PARENTESCO_ABUELA_PATERNA=>ParentescoHelper::LABEL_ABUELA_PATERNA,
									 ParentescoHelper::PARENTESCO_ABUELO_MATERNO=>ParentescoHelper::LABEL_ABUELO_MATERNO,
									 ParentescoHelper::PARENTESCO_ABUELA_MATERNA=>ParentescoHelper::LABEL_ABUELA_MATERNA,	
									 ParentescoHelper::PARENTESCO_HERMANO_ABUELO_PATERNO=>ParentescoHelper::LABEL_HERMANO_ABUELO_PATERNO,
									 ParentescoHelper::PARENTESCO_HERMANO_ABUELA_PATERNA=>ParentescoHelper::LABEL_HERMANO_ABUELA_PATERNA,
									 ParentescoHelper::PARENTESCO_HERMANO_ABUELO_MATERNO=>ParentescoHelper::LABEL_HERMANO_ABUELO_MATERNO,
									 ParentescoHelper::PARENTESCO_HERMANO_ABUELA_MATERNA=>ParentescoHelper::LABEL_HERMANO_ABUELA_MATERNA,	
									 ParentescoHelper::PARENTESCO_PADRE_ABUELA_MATERNA=>ParentescoHelper::LABEL_PADRE_ABUELA_MATERNA,
									 ParentescoHelper::PARENTESCO_MADRE_ABUELA_MATERNA=>ParentescoHelper::LABEL_MADRE_ABUELA_MATERNA,
									 ParentescoHelper::PARENTESCO_PADRE_ABUELO_MATERNO=>ParentescoHelper::LABEL_PADRE_ABUELO_MATERNO,
									 ParentescoHelper::PARENTESCO_MADRE_ABUELO_MATERNO=>ParentescoHelper::LABEL_MADRE_ABUELO_MATERNO,
									 ParentescoHelper::PARENTESCO_PADRE_ABUELA_PATERNA=>ParentescoHelper::LABEL_PADRE_ABUELA_PATERNA,
									 ParentescoHelper::PARENTESCO_MADRE_ABUELA_PATERNA=>ParentescoHelper::LABEL_MADRE_ABUELA_PATERNA,
									 ParentescoHelper::PARENTESCO_PADRE_ABUELO_PATERNO=>ParentescoHelper::LABEL_PADRE_ABUELO_PATERNO,
									 ParentescoHelper::PARENTESCO_MADRE_ABUELO_PATERNO=>ParentescoHelper::LABEL_MADRE_ABUELO_PATERNO,	
									 ParentescoHelper::PARENTESCO_HERMANO_PADRE=>ParentescoHelper::LABEL_HERMANO_PADRE,
									 ParentescoHelper::PARENTESCO_HERMANO_MADRE=>ParentescoHelper::LABEL_HERMANO_MADRE);
									 
	private $multiplicidad = array(ParentescoHelper::PARENTESCO_HERMANO=>ParentescoHelper::MULTIPLE,
									 ParentescoHelper::PARENTESCO_PADRE=>ParentescoHelper::NO_MULTIPLE,
									 ParentescoHelper::PARENTESCO_MADRE=>ParentescoHelper::NO_MULTIPLE,
									 ParentescoHelper::PARENTESCO_ABUELO_PATERNO=>ParentescoHelper::NO_MULTIPLE,
									 ParentescoHelper::PARENTESCO_ABUELA_PATERNA=>ParentescoHelper::NO_MULTIPLE,
									 ParentescoHelper::PARENTESCO_ABUELO_MATERNO=>ParentescoHelper::NO_MULTIPLE,
									 ParentescoHelper::PARENTESCO_ABUELA_MATERNA=>ParentescoHelper::NO_MULTIPLE,	
									 ParentescoHelper::PARENTESCO_HERMANO_ABUELO_PATERNO=>ParentescoHelper::MULTIPLE,
									 ParentescoHelper::PARENTESCO_HERMANO_ABUELA_PATERNA=>ParentescoHelper::MULTIPLE,
									 ParentescoHelper::PARENTESCO_HERMANO_ABUELO_MATERNO=>ParentescoHelper::MULTIPLE,
									 ParentescoHelper::PARENTESCO_HERMANO_ABUELA_MATERNA=>ParentescoHelper::MULTIPLE,	
									 ParentescoHelper::PARENTESCO_PADRE_ABUELA_MATERNA=>ParentescoHelper::NO_MULTIPLE,
									 ParentescoHelper::PARENTESCO_MADRE_ABUELA_MATERNA=>ParentescoHelper::NO_MULTIPLE,
									 ParentescoHelper::PARENTESCO_PADRE_ABUELO_MATERNO=>ParentescoHelper::NO_MULTIPLE,
									 ParentescoHelper::PARENTESCO_MADRE_ABUELO_MATERNO=>ParentescoHelper::NO_MULTIPLE,
									 ParentescoHelper::PARENTESCO_PADRE_ABUELA_PATERNA=>ParentescoHelper::NO_MULTIPLE,
									 ParentescoHelper::PARENTESCO_MADRE_ABUELA_PATERNA=>ParentescoHelper::NO_MULTIPLE,
									 ParentescoHelper::PARENTESCO_PADRE_ABUELO_PATERNO=>ParentescoHelper::NO_MULTIPLE,
									 ParentescoHelper::PARENTESCO_MADRE_ABUELO_PATERNO=>ParentescoHelper::NO_MULTIPLE,	
									 ParentescoHelper::PARENTESCO_HERMANO_PADRE=>ParentescoHelper::MULTIPLE,
									 ParentescoHelper::PARENTESCO_HERMANO_MADRE=>ParentescoHelper::MULTIPLE);

	private $color_fondo_arbol = array(ParentescoHelper::PARENTESCO_HERMANO 			=>"78D3FF",
									 ParentescoHelper::PARENTESCO_PADRE					=>"A8FF8B",
									 ParentescoHelper::PARENTESCO_MADRE					=>"F9B0DB",
									 ParentescoHelper::PARENTESCO_ABUELO_PATERNO		=>"BDCDF7",
									 ParentescoHelper::PARENTESCO_ABUELA_PATERNA		=>"FF988B",
									 ParentescoHelper::PARENTESCO_ABUELO_MATERNO		=>"CACACA",
									 ParentescoHelper::PARENTESCO_ABUELA_MATERNA		=>"C4FBF1",	
									 ParentescoHelper::PARENTESCO_HERMANO_ABUELO_PATERNO=>"FEA1FF",
									 ParentescoHelper::PARENTESCO_HERMANO_ABUELA_PATERNA=>"BADCC8",
									 ParentescoHelper::PARENTESCO_HERMANO_ABUELO_MATERNO=>"E1A6FF",
									 ParentescoHelper::PARENTESCO_HERMANO_ABUELA_MATERNA=>"FFFFA0",	
									 ParentescoHelper::PARENTESCO_PADRE_ABUELA_MATERNA	=>"FFCFA0",
									 ParentescoHelper::PARENTESCO_MADRE_ABUELA_MATERNA	=>"FFED7C",
									 ParentescoHelper::PARENTESCO_PADRE_ABUELO_MATERNO	=>"D2D2D2",
									 ParentescoHelper::PARENTESCO_MADRE_ABUELO_MATERNO	=>"B6F3B6",
									 ParentescoHelper::PARENTESCO_PADRE_ABUELA_PATERNA	=>"A8D7E5",
									 ParentescoHelper::PARENTESCO_MADRE_ABUELA_PATERNA	=>"EBD3FA",
									 ParentescoHelper::PARENTESCO_PADRE_ABUELO_PATERNO	=>"FFD78F",
									 ParentescoHelper::PARENTESCO_MADRE_ABUELO_PATERNO	=>"FF9F9F",	
									 ParentescoHelper::PARENTESCO_HERMANO_PADRE			=>"D9D4FF",
									 ParentescoHelper::PARENTESCO_HERMANO_MADRE			=>"C9E4C9");

	private $colspan_arbol 		 = array(ParentescoHelper::PARENTESCO_HERMANO 			=>8,
									 ParentescoHelper::PARENTESCO_PADRE					=>2,
									 ParentescoHelper::PARENTESCO_MADRE					=>2,
									 ParentescoHelper::PARENTESCO_ABUELO_PATERNO		=>2,
									 ParentescoHelper::PARENTESCO_ABUELA_PATERNA		=>2,
									 ParentescoHelper::PARENTESCO_ABUELO_MATERNO		=>2,
									 ParentescoHelper::PARENTESCO_ABUELA_MATERNA		=>2,	
									 ParentescoHelper::PARENTESCO_HERMANO_ABUELO_PATERNO=>2,
									 ParentescoHelper::PARENTESCO_HERMANO_ABUELA_PATERNA=>2,
									 ParentescoHelper::PARENTESCO_HERMANO_ABUELO_MATERNO=>2,
									 ParentescoHelper::PARENTESCO_HERMANO_ABUELA_MATERNA=>2,	
									 ParentescoHelper::PARENTESCO_PADRE_ABUELA_MATERNA	=>1,
									 ParentescoHelper::PARENTESCO_MADRE_ABUELA_MATERNA	=>1,
									 ParentescoHelper::PARENTESCO_PADRE_ABUELO_MATERNO	=>1,
									 ParentescoHelper::PARENTESCO_MADRE_ABUELO_MATERNO	=>1,
									 ParentescoHelper::PARENTESCO_PADRE_ABUELA_PATERNA	=>1,
									 ParentescoHelper::PARENTESCO_MADRE_ABUELA_PATERNA	=>1,
									 ParentescoHelper::PARENTESCO_PADRE_ABUELO_PATERNO	=>1,
									 ParentescoHelper::PARENTESCO_MADRE_ABUELO_PATERNO	=>1,	
									 ParentescoHelper::PARENTESCO_HERMANO_PADRE			=>2,
									 ParentescoHelper::PARENTESCO_HERMANO_MADRE			=>2);
									 
	public function label($parentesco) {
	     $label=$this->labellist[$parentesco];
	     return $label;								 
	} 
	
	public function multiple($parentesco){
		 return $this->multiplicidad[$parentesco];
	}
	
	public function celdaArbol($parientesOrdenados, $consultante, $parentesco) {
		$colspan=$this->colspan_arbol[$parentesco];
		$color=$this->color_fondo_arbol[$parentesco];
		$return="<td bgcolor=\"#$color\" colspan=$colspan><B>".$this->label($parentesco)."</B>"."<BR/>";
		$parientesList=parentesco::model()->with('persona')->
					findAllByAttributes(array('tipo'=>$parentesco,'consultanteId'=>$consultante->id));
		$lista=$parientesList;		
		$return.="<table >";
		if ($parentesco==ParentescoHelper::PARENTESCO_HERMANO){
			$return.="<tr>";
		}
		foreach($lista as $pariente) {
			$persona=$pariente->persona;
			if ($parentesco==ParentescoHelper::PARENTESCO_HERMANO){
				$return.="<td style=\"border-style: dotted dotted dotted dotted;\">";
			} else {
				$return.="<tr><td style=\"border-style: dotted dotted dotted dotted;\">";
			}
			if ($persona->foto!=null)
			{ 
				$imagen= CHtml::image('/psigen/images/'.$persona->id.'.jpg','Foto-'.$persona->id,
				array("height"=>48));
			} else {
				$imagen="";
			}
			$return.="<BR/>"
			.CHtml::link($imagen."<BR/>".CHtml::encode($persona->nombre)." " .CHtml::encode($persona->apellido1)." ".CHtml::encode($persona->apellido2),
				array('/persona/update','id'=>$persona->id, 'tipoId'=>$parentesco,'consultanteId'=>$consultante->id));
			if ($parentesco==ParentescoHelper::PARENTESCO_HERMANO){
				$return.="</td>";
			} else {
				$return.="</tr></td>";
			}
		}
		if ($parentesco==ParentescoHelper::PARENTESCO_HERMANO){
			$return.="</tr>";
		}
		$return.="</table>";
		if (count($lista)==0 || $this->multiple($parentesco)) {
			$return.="<BR/>".CHtml::link('Nuevo',array('/persona/create','tipoId'=>$parentesco,'consultanteId'=>$consultante->id));
		}
		$return.="</td>";
		return $return;	
	}
	
}
